package com.rxh.service;

import com.rxh.pojo.base.Page;
import com.rxh.pojo.base.PageResult;
import com.rxh.pojo.base.SearchInfo;
import com.rxh.pojo.core.CoreCardholder;
import com.rxh.pojo.core.CoreCargoTrack;
import com.rxh.pojo.core.CoreOrder;
import com.rxh.pojo.core.CoreOrderDetail;
import com.rxh.pojo.risk.*;
import com.rxh.vo.VoCoreOrderExport;

import java.util.List;
import java.util.Map;

public interface RiskService {

      /*
       * 风控限次管理表 risk_limit
       */

       //获取下拉框参数
      Map<String,Object> getInit();

      //获取RiskLimit的全部数据
      List<RiskLimit> getIndefinitely();

      //启用与禁用模块
      Boolean updateindefinitelyLocked(RiskLimit riskLimit);

      //新增
      Integer addRiskLimit(RiskLimit riskLimit);

      //判断是否可以添加
      Integer addIndefinitely(RiskLimit riskLimit);

      //更新
      Integer updateRiskLimit(RiskLimit riskLimit);

      //删除
      Integer deleteRiskLimitById(long id);

      //批量删除模块
      Integer deleteBatchRiskLimit(String[] idArr);

      //根据交易时间和id来获取bank_status
      List<Map<String,Object>> getCountCoreOrder(CoreOrder coreOrder);

      List<Map<String,Object>> getCountCoreCardHolder(CoreOrder coreOrder, CoreCardholder coreCardholder);

      List<Map<String,Object>> getCountCardHolderId(CoreOrder coreOrder, CoreOrderDetail coreOrderDetail);


      /*
       *  风控限额管理表  risk_quota
       */


      //获取RiskQuota的全部数据
      List<RiskQuota> getLimit();

      //启用与禁用模块
      Boolean updateRiskQuotaLocked(RiskQuota riskQuota);

      //删除用户模块
      Boolean deleteRiskQuotaByid(Long id);

      //新增用户模块
      Boolean addRiskQuota(RiskQuota riskQuota);

      //判断是否可添加
      Integer insertRiskQuota(RiskQuota riskQuota);

      //更新用户模块
      Boolean updateRiskQuota(RiskQuota riskQuota);

      //批量删除用户
      Integer deleteBatchRiskQuota(String[] idArr);

      /**
       * risk_quota_data
       * @return
       */
      List<RiskQuotaData> getQuotaData();

      Integer insertOrUpdateRiskQuotaData(List<RiskQuotaData> quotaDataList);

      /*
       *  风控拒绝管理表 risk_refuse
       */

      //获取RiskRefuse的全部数据
      List<RiskRefuse> getRefuse();

      //启用与禁用模块
      Boolean  updaterefusedLocked(RiskRefuse riskRefuse);

      //删除用户模块
      Boolean  deleteRiskRefuse(Long id);

      //新增用户模块
      Boolean addRiskRefuse(RiskRefuse riskRefuse);

      //判断是否可添加
      Integer insertRiskRefuse(RiskRefuse riskRefuse);

      //更新用户模块
      Boolean updateRiskRefuse(RiskRefuse riskRefuse);

      //批量删除模块
      Integer deleteBatchRiskRefuse(String[] idArr);


      /*
       *  外置风控管理表 risk_extend
       */

      //获取RiskExtend的全部数据
      List<RiskExtend> getOuter();

      //启用与禁用模块
      Boolean updateouterLocked(RiskExtend riskExtend);

      //删除用户模块
      Boolean deleteRiskExtend(Long id);

      //新增用户模块
      Boolean addRiskExtend(RiskExtend riskExtend);

      //判断是否可以添加
      Integer insertRiskExtend(RiskExtend riskExtend);

      //更新用户模块
      Boolean updateRiskExtend(RiskExtend riskExtend);

      //批量删除模块
      Integer deleteBatchRiskExtend(String[] idArr);

      /*
       * 黑卡库管理表 risk_danger
       */

      //获取RiskDanger的全部数据
      List<RiskDanger> getBlackcard();

      //启用与禁用模块
      Boolean updateblackcardLocked(RiskDanger riskDanger);

      //删除用户模块
      Boolean deleteRiskDanger(Long id);

      //新增用户模块
      Boolean addRiskDanger(RiskDanger riskDanger);

      //判断是否可以添加
      Integer insertRiskDanger(RiskDanger riskDanger);

      //更新用户模块
      Boolean updateRiskDanger(RiskDanger riskDanger);

      //批量删除模块
      Integer deleteBatchRiskDanger(String[] idArr);

      /**
       *  商务卡管理表 risk_business
       */

      //获取RiskBusiness的全部数据
      List<RiskBusiness> getBusiness();
      //新增模块
      Boolean addRiskBusiness(RiskBusiness riskBusiness);
      //判断用户是否可以添加
      Integer insertRiskBusiness(RiskBusiness riskBusiness);
      //更新模块
      Boolean updateRiskBusiness(RiskBusiness riskBusiness);
      //批量删除模块
      Integer deleteBatchRiskBusiness(String[] idArr);

      /**
       *  发卡行管理表 risk_issuer
       */
      //获取RiskIssuer的全部数据
      List<RiskIssuer> getIssuer();
      //获取新增模块
      Boolean addRiskIssuer(RiskIssuer riskIssuer);
      //更新模块
      Boolean updateRiskIssuer(RiskIssuer riskIssuer);
      //判断用户是否可以添加
      Integer insertRiskIssuer(RiskIssuer riskIssuer);
      //批量删除模块
      Integer deleteBatchRiskIssuer(String[] idArr);

      /**
       * 物流管理
       */
      Map<String, Object> getLogisticsMgmtInit(Integer merId);

      PageResult getLogisticsMgmtInfo(Page page);

      int uploadExpressInfo(CoreCargoTrack coreCargoTrack);

      List<VoCoreOrderExport> getExportOrderInfo(SearchInfo searchInfo);

      int batchUpdateOrders(List<Map<String, Object>> recodes);



}

